FIXES TO PRODUCTS ON THE -03 REVISION OF THE DCCONNECT CD
---------------------------------------------------------
This file catalogs fixes made to the DCConnect products since we
shipped the -03 revision of the DCConnect CD in September 1997.

Each fix pack that we create is assigned a letter.  The first is A,
the second is B, ...

Each fix pack is set up as a self-extracting zip file.  There is one fix
pack file for OS/2 and one for Windows/NT.

The self-extracting zip file for OS/2 is called:

  OS2FX03n.EXE

where 'n' is the fix pack letter (A, B, ...)

The self-extracting zip file for Windows/NT is called:

  NTFX03n.EXE

where 'n' is the fix pack letter (A, B, ...)

The rest of this document will refer to these self-extracting zip files as
OS2FX03n.EXE and NTFX03n.EXE rather than specifying a particular fix pack
letter for 'n'.  But when performing any steps below that use these file
names, be sure to use the appropriate fix pack letter in place of 'n'.  For
example, for version D of the fix pack, use OS2FX03D.EXE and NTFX03D.EXE.

In addition to describing the fixes made, this file explains how to
install the OS/2 fixes from the OS2FX03n.EXE self-extracting zip file and
the NT fixes from the NTFX03n.EXE self-extracting zip file.

See the bottom of the file for the date of the last change.

Note: Fixes for '752X Emulator for DOS' and fixes for the 'Data Collection
      Transaction Building Tool' (aka DCTPB32) are provided in separate fix
      packages.

All fix packs are cumulative; you need only install the latest fix pack in
order to get all fixes that apply to the products on the -03 revision of the
DCConnect CD.

If you have the file OS2FX03n.EXE or NTFX03n.EXE you can either create
diskettes from which to install the fixes or you can expand the
file on the hard drive into any empty subdirectory and run the installation
from that subdirectory.


IMPORTANT NOTE FOR ALL USERS:
-----------------------------
These fixes can only be installed if your PC has been rebooted since you
installed from the -03 revision of the DCConnect CD.  The installation makes
use of some operating system environment variables (e.g. DCCONN).  These
fixes CANNOT be applied to the -02 revision of the DCConnect CD or any
prior version.


EXPANDING AND INSTALLING OS/2 FIXES FROM THE HARD DRIVE
-------------------------------------------------------
To expand and install OS2FX03n.EXE from somewhere on your hard drive,
perform the following steps:

1) Create or choose an empty directory anywhere on your harddrive.  For
   example: C:\TEMP

2) Copy or download OS2FX03n.EXE to that directory

3) Make sure that directory is the current directory and then run the
   executable by typing:

     OS2FX03n

   This will expand all the files into the current directory.

4) To install the fixes, first make sure none of the DCConnect products are
   running and that the current directory is the one containing the expanded
   contents of the OS2FX03n executable.  Issue the following command:

     INSTALL

5) Continue with the section below marked: CHRONOLOGICAL SUMMARY OF
   FIXES/CHANGES


EXPANDING AND INSTALLING OS/2 FIXES USING DISKETTES
---------------------------------------------------
If you need to update several OS/2 DCConnect machines with fixes and you want
to run the fix pack installation from diskette, you can use the MAKEDSKS.CMD
command file to create the diskette.  Perform the following steps:

1) Create or choose an empty directory anywhere on your harddrive.  For
   example: C:\TEMP

2) Copy or download OS2FX03n.EXE to that directory

3) Make sure that directory is the current directory and then run the
   executable by entering:

     OS2FX03n

   This will expand all the files into the current directory.

4) To create the diskettes, first get three completely blank, formatted 1.44
   3.5 in. diskette.  Then run the following command file from the current
   directory:

     MAKEDSKS

   This will prompt you for the diskettes that are needed and copy the
   appropriate files to them.

5) To install the fixes contained on the fix diskette, first make sure none
   of the DCConnect products are running and make sure the first fix
   diskette is in drive A:  Issue the following command:

     A:\INSTALL

   If additional diskettes are needed, they will be prompted for. (Of
   course, drive B: could be used for the installation as well).

   Note: Once you have created the diskettes, you could also copy the contents
   of the diskettes to an empty directory on the target system and then run the
   installation from that directory.  In fact this is probably faster than
   running the installation directly from diskette.

6) Continue with the section below marked: CHRONOLOGICAL SUMMARY OF
   FIXES/CHANGES


EXPANDING AND INSTALLING WINDOWS/NT FIXES FROM THE HARD DRIVE
-------------------------------------------------------------
To expand and install NTFX03n.EXE from somewhere on your hard drive,
perform the following steps:

1) Create or choose an empty directory anywhere on your harddrive.  For
   example: C:\TEMP

2) Copy or download NTFX03n.EXE to that directory

3) Make sure that directory is the current directory and then run the
   executable by typing:

     NTFX03n

   This will expand all the files into the current directory.

4) To install the fixes, first make sure none of the DCConnect products are
   running and that the current directory is the one containing the expanded
   contents of the NTFX03n executable.  Issue the following command:

     SETUP

5) Continue with the section below marked: CHRONOLOGICAL SUMMARY OF
   FIXES/CHANGES


EXPANDING AND INSTALLING NT FIXES USING DISKETTES
-------------------------------------------------
If you need to update several NT DCConnect machines with fixes and you want
to run the fix pack installation from diskette, you can use the MAKEDSKS.CMD
command file to create the diskette.  Perform the following steps:

1) Create or choose an empty directory anywhere on your harddrive.  For
   example: C:\TEMP

2) Copy or download NTFX03n.EXE to that directory

3) Make sure that directory is the current directory and then run the
   executable by entering:

     NTFX03n

   This will expand all the files into the current directory.

4) To create the diskettes, first get four completely blank, formatted 1.44
   3.5 in. diskette.  Then run the following command file from the current
   directory:

     MAKEDSKS

   This will prompt you for the diskettes that are needed and copy the
   appropriate files to them.

5) To install the fixes contained on the fix diskette, first make sure none
   of the DCConnect products are running and make sure the first fix
   diskette is in drive A:  Issue the following command:

     A:\SETUP

   If additional diskettes are needed, they will be prompted for. (Of
   course, drive B: could be used for the installation as well).

   Note: Once you have created the diskettes, you could also copy the contents
   of the diskettes to an empty directory on the target system and then run the
   installation from that directory.  In fact this is probably faster than
   running the installation directly from diskette.  However, you will be
   prompted to insert the additional diskettes as they are needed by the
   installation.  The prompting dialog box will contain the current drive and
   path which should be where the files were copied.  You can accept that
   location, and the installation will continue.

6) Continue with the section below marked: CHRONOLOGICAL SUMMARY OF
   FIXES/CHANGES


CHRONOLOGICAL SUMMARY OF FIXES/CHANGES
--------------------------------------
For each problem, a two character ID will be given indicating which product
had the problem.  Here are the IDs:

  UI: DCConnect User Interface
  SV: DCConnect Server - includes API code
  TC: Transaction Connection
  IS: 7524 Interface Support
  IN: Installation
  HP: Help and online documentation
  TL: Tools


9-10-97:  TC: (NT only) TC2.EXE no longer has debug information in it.  It's
          much smaller now.

9-11-97:  SV: Fixed problem submitting a validation file for the first time.
          A -400 error would be given during the rename process.  The problem
          was that an error was given trying to delete the .VAL file before
          the rename since the .VAL file did not exist.  This should not have
          been considered an error.

          A workaround is simply to create the target .VAL file as anything -
          and then resubmit.  In fact, copying the source to the target
          directly would work.  If doing the workaround when a submit from
          the user interface is being attempted, copy the file when the
          validation folder is already displayed.  Then choose the submit
          option immediately after copying the file.

9-11-97:  SV: APAR PQ08235: The poll cycle and slow poll rate parameters were
          not being properly passed to the terminal drivers.  Instead a poll
          cycle of 0.1 second and slow poll rate of 1 minute were always being
          used.

          Along with this fix, changes were made to the port tasks to
          check for a 0 value for the wait time before polls.  If the
          calculation based on poll cycle and number of terminal polling
          yields a 0 value, it is changed to 10ms.

9-11-97:  SV: If a request is made to download ETS to a non-7527 terminal, the
          server would fail the download with an appropriate message and then
          would do retries of that download.  Since this kind of failure can
          never be fixed, the code has been changed so that retries are not
          performed.  The message is still given, but the terminal will be
          left in its prior state and it will be as if the download request
          was never made.

9-22-97:  UI: Fixed bug with Mode parameter of WRDO transaction program command
          (available only for 7526 terminals).  The Asynch setting was never
          preserved.

9-25-97:  UI: (NT only) Fixed problem with ARTIC configuration during build-
          time: The newest version of the ARTIC device driver required the
          configuration information to be stored in a different place than
          previous drivers.  The installation program was corrected for this,
          but the build-time configuration program was not changed.  This has
          now been fixed, and the build-time program correctly configures ARTIC
          adapters.

9-26-97:  UI: Implemented workaround to get scrolling to work properly despite
          compiler bug.  In previous releases, the initial display of a folder
          would not always be positioned at the top.  The positioning is now
          correct.  However, due to the way we had to work around the compiler
          bug, there is a slight flicker because the repositioning of the
          window must be done after the initial position is made visible.

9-26-97:  SV: Validation file names read from the \DCCONN\VAL directory are now
          converted to upper case when stored in the server's internal tables.
          In the past, if file names in an HPFS or NTFS directory were in
          lower case, they'd be stored as lower case by the server.

9-29-97:  SV: Increased the constants DCX_APPL_PATH_LEN and DCX_APPL_PARMS_LEN
          to 256 from 128.   This was needed because it is fairly easy to
          exceed 128 bytes for the command line of a Transaction Connection
          application.

9-29-97:  SV: DcxDisplayTermText now treats a 7524 like a 7527 in that the row
          and column parameters are used.  Before this fix, when this API
          was used the message was always shown on row 1 for 7524 terminals.

9-29-97:  SV: DOS/Windows terminals are no longer time synched.

9-29-97:  SV: When shutting down the server, the server now waits up to 2
          minutes for all terminal drivers to shut down - including the RF
          driver.  In the past, the server would shut down even though the RF
          driver would not shut down for some time.  As a result the user could
          restart the server before the RF driver was shut down thus preventing
          the RF driver from starting up properly the next time.  This is no
          longer possible because the server does not fully shut down till
          the RF driver and the other drivers are shut down.

9-29-97:  HP: Reworded message 265 in help.  Also reworded any OS/2 specific
          references.

9-29-97:  TC: APAR PQ10167: Fixed cause of traps at shutdown in TC2.EXE.  The
          various threads of TC were not coordinated in their cleanup.  You
          will now see extra informational messages about when the various TC
          threads start and end.

          Also fixed problem where a password would be prompted for when
          and END_TC, END_DBITS, END_AHISS, ... statement was encountered.
          By the way the password it was looking for was $$END$$

9-29-97:  TC: On-error processing was not being done in run-with-disconnect
          mode for Perform_Insert, Perform_Update, Commit_Changes and
          Rollback_Changes.

10-02-97: TC: Fixed problem showing DCConnect return codes in select messages;
          negative values were shown incorrectly.  References to 'export'
          also now changed to 'mailbox'.  References to DCC/2 changed to
          DCConnect.

10-10-97: TC: User variable names and validation file names are now case-
          insensitive.  In addition the following keywords are now case
          insenstive: CURRENT, IF_FOUND, FOUND, IF_NOT_FOUND and NOT_FOUND.

10-10-97: TC: 0 is now allowed for the length if the data part is TXNDATA.
          Before if 0 was specified for this part, you'd get no data.  Now
          you'll get whatever data is present (based on the DATALEN value).

10-10-97: TC: Log_Error will now retry if it fails - up to 10 times.  Log_Data
          and Log_Xact already did retries on failure.

----------------------------------------------------------------------------
End of fixes in version A of -03 fix package (November 1997).
----------------------------------------------------------------------------

11-19-97: UI: In transaction program editor, fixed problem deleting a block
          of commands if the End of Program marker was also selected.

11-20-97: UI: APAR PQ10807: Fixes for handling of RF Line.  Before the fix,
          there were scenarios where the RF line setting would be lost or
          would be inaccessible.  In addition, the GUI couldn't handle an RF
          configuration from the DCC/2 32-bit runtime because that used a
          line number of 0 instead of 1-4.  Another wierd problem that was
          fixed involved unlinking of terminals from ARTIC 0 line 1, for
          example, when Serial 0 line 1 was RF.

11-20-97: TC: When processing REMOTE_VALIDATION requests, you'd get a harmless,
          yet annoying message about invalid start/length for every validation
          request that was proceseed.  In addition, the VALTYPE value shown in
          the topmost box would always be blank.  This has been fixed.

          Also fixed the trace value shown in the middle box for the command
          Send_Term_VResp.  Before the fix, it would show FAIL for PASS and it
          would show UNKNOWN for FAIL.

11-20-97: SV: Somehow missed updating message 265 to indicate that the RF
          shutdown could take up to 1 or 2 minutes; used to say 15 or 20
          seconds.  This was supposed to be in Fixpack A.

12-03-97: HP: APAR PQ10594: Enhanced description of Remote Validation Timeout
          parameter in terminal notebooks.  Removed duplicate entry for
          Non-prompt Message Display Time.

12-03-97: TC: Minor change to OS/2 version of Transaction Connection to allow
          it to work with DCC/2 32-bit runtime.  Prior to the change, there
          would be a failure to load the data request APIs.

12-04-97: SV: APAR PQ11110: Terminal messages longer than 46 characters will
          cause the server to trap during a terminal download operation.

12-04-97: SV: Transactions received from DOS/Windows terminals may have
          incorrect transaction ID values.

12-18-97: TC: Write_Xact now takes an additional optional parameter at the end,
          to specify a timestamp for the transaction.  This parameter can
          be a literal string, with or without double quotes, or can be
          stored in a user variable.  It must be 12 characters long in
          the form: YYMMDDHHMMSS.

          Write_Xact now allows the terminal name and function group name
          to be stored in a user variable or be specified as a literal string.

          Write_Xact bug fixed to allow the full length od 32 for terminal
          and cluster names.

          Massive fixes to Open_File_Data, Read_File_Data and
          Close_File_Data to correct problems that were probably introduced
          in the NT port.  The return codes are now mapped back to what the
          online book specifies.  The file is no longer required to be in
          the TC directory.

          Fixed retry count bug on setting terminal user variables, that
          could cause DCCONN to go into a very long retry loop for a
          terminal which is not responding.

1-29-98:  TL: Added a tool for releasing transactions from a mailbox.  The
          utility RELTX32.EXE can be used to release a single transaction from
          a mailbox logfile.  Optionally, the transaction that is to be
          released can be written to a separate file (RELTX32.OUT).  In order
          to release more than one transaction, the utility must be run once
          for each transaction.  This is done to minimize the risk of
          releasing more transactions than desired.  If necessary, this
          program could be called from a command file that loops.

          This utility is now available for both OS/2 and Windows/NT.
          Previously a 16-bit version called RELTXTN.EXE was available only
          for OS/2.

          Before this utility can be used, the DCConnect server must be
          running.  In addition, there cannot be any application running that
          reads transactions from the specified mailbox.

          This program is located in the \DCCONN\BIN directory and should
          run from any directory.  It can be run by typing its name and the
          name of the mailbox from which a transaction must be released.  For
          example:

            reltx32 SampleDCC

          The mailbox name is case sensitve and must match the case of the
          mailbox name that is configured in DCConnect.  If a transaction from
          the specified mailbox is available, it is displayed field by field
          and you are asked what to do with the transaction:

          - Press 'R' to release it without writing it to file.
          - Press 'W' to write it to file (RELTX32.OUT) and then release it.
          - Press 'Q' to quit without releasing the transaction.

          No matter which option is selected, the program ends.

          If you selected the transaction to be written to file, the new
          transaction is appended to the end, if that file already exists.
          The format of the transaction when written to this file is the
          same format as when it was received by the API DcxReadTransaction.
          Therefore a program could be written to read the transactions from
          this file and write them back into a mailbox using the API
          DcxWriteTransaction.

          If no transaction is available when this utility is run, the program
          continues to check for the arrival of a transaction.  During this
          time, you can press 'Q' to end the program.

2-09-98:  TC: Close from upper left corner or from task list would not call
          regular cleanup.  It now acts as if a Normal Shutdown was performed.

2-12-98:  TC: Certain commands in a Logoff script would cause the logoff
          script to loop continuously for about 30 seconds.  One example is
          a Check_Screen command with a non-zero timeout.  This has been
          fixed.

2-16-98:  TC: A value for MaxXactWait greater than 0 and less than 1000 would
          cause a trap.  All MaxXactWait values are now rounded up to the
          nearest second.

2-17-98:  TC: TC would sometimes just disappear if running Flight (a DB/2
          program) and Flight trapped.  There should be no connection but
          an exception was being thrown in some GUI code of TC.  We now
          catch that exception and ignore it.

2-27-98:  TC: Fixed a bug in the Trace output for the Data Request Functions,
          that was causing the sender and receiver to be reversed.

3-10-98:  TC: Fixed a bug in the Trace output that was truncating transactions,
          validation requests and data requests to 80 characters in the trace
          file.

3-11-98:  TC: Fixed a bug in the trace output that was truncating User
          Variable data to 200 bytes, placing a ... in the middle.  The
          full length of User Variable data will now be written to the
          trace file, even for large User Variables which can be 16K
          in length.

3-27-98:  SV: DcxGetTermUserVariable API is now allowed for the 7524 terminal
          type in addition to the 7526.

3-27-98:  UI: Fixed bug with fast clocking validation file.  If that file was
          selected for download and you pressed OK and then came back, the
          selection for download would be lost.

4-01-98:  SV: Fixed bug in DOS/Windows Terminal Services server side driver.
          Each time a DWTS terminal contacted the server, some resources were
          allocated which were not returned to the system.  If this continued
          for a long enough time, the system would become unstable.  This
          problem has now been corrected.

4-03-98:  TC: The Append_UV_UV and Set_UV_UV commands now accept start and
          length parameters.  The use of these parameters is just like their
          equivalents in the Append_UV_Xact_Data command - including the
          ability to use user variables for either parameter.  If only one
          of the two new optional parameters is given, it is assumed to be
          the start position.

4-13-98:  SV: Made changes to the ARTIC and COMx serial drivers to flush input
          buffers before the next write if the previous write resulted in
          some a Nak or invalid response.  This will help get communications
          to get back in synch when commands time out.

4-15-98:  TC: Added new command: Get_Length (UVn, DataPart).  The first
          parameter is the user variable in which to store the length.  The
          second parameter is the data part whose length is needed.  The
          values acceptable for these two parameters are the same as the
          first two parameters of the Append_UV_Xact_Data command.

          The Get_Length command can be useful for parsing portions of data
          fields.  Here are a couple of examples:

          1) To get the last 3 bytes of TXNFIELD6 into UV50:

               Get_Length (UV10, TXNFIELD6)
               UV_Math(UV10, -, 3)
               Set_UV_Xact_Data(UV50, TXNFIELD6, UV10, 3)

          2) To get all but the last byte of UV13 into UV50:

               Get_Length (UV10, UV13)
               UV_Math(UV10, -, 1)
               Set_UV_Xact_Data(UV50, UV13, 0, UV10)

4-20-98:  SV: The address character in the transaction structure was being
          incorrectly set for RF terminals.

4-23-98:  TC: The StartMatch command will now properly handle a start=0 and
          length=0 comparison in the same way that other commands handle
          those values for various data parts.

4-29-98:  SV: Fixed reason for erase files command always failing for
          7524 and 7527 terminals.

4-30-98:  SV: Transactions generated using the API DcxWriteTransaction now
          properly put the function group name into the transaction instead
          of the job name.  This is what happens for all other transactions
          that are generated from real terminals.

5-06-98:  TL: APAR PQ15737: In the utility for migrating 16-bit program files,
          made an adjustment in conversion of messages to account for a bug
          that can exist in 16-bit .PGM files.  With this bug the message
          number included in certain messages is incorrect for the position of
          that message.

5-08-98:  TC: Added new command: Define_UVs (Total #, # Large) for defining
          how many user variables are available for use and of those, how many
          are to be of the large size.

          The first parameter is the total number of user variables needed.
          This value must be larger than 20; there is no maximum - although
          some memory is allocated based on this value (about 16 bytes per
          user variable), so pick a reasonable value.

          The second parameter indicates how many of the total number are to
          be allocated as large user variables.  Large user variables can hold
          16383 bytes of data; the rest of the user variables hold 235 bytes
          of data.  The number specified for the second parameter can range
          from 0 up to the value specified for the first parameter.   So if
          0 is specified for the second parameter, all user variables will be
          small.  If the same value is specified for both parameters, all
          user variables will be large.

          Note: Memory for the actual user variable buffers, small and large,
          is only allocated for those user variables that are referenced in
          the script.

          The large user variables will be the last ones in the set of user
          variables.  For example, if you specified 200 user variables and
          20 of them are large then UV1 through UV 180 will be small and
          UV181 through UV200 will be the large ones.

          The Define_UVs command must appear in the script before any command
          that references a user variable.  If the Define_UVs command is not
          used, TC acts as it did in the past which is equivalent to using
          the command Define_UVs (250, 10).

          Here are a couple of examples:

          1) To set up 300 user variable of which 50 are large:

               Define_UVs(300, 50)

          2) To set up 300 user variable of which all are large:

               Define_UVs(300, 300)

          3) To set up 300 user variable of which all are small:

               Define_UVs(300, 0)

----------------------------------------------------------------------------
End of fixes in version B of -03 fix package (June 1998).
----------------------------------------------------------------------------

7-16-98:  SV: Fixed problem in TCP/IP terminal driver with the message
          sequence number that goes into Are-you-there messages.  The
          sequence number from the last terminal which sent a command was
          being used instead of the one for the target terminal.

          This only causes a problem with terminals running the 752x Emulator
          for DOS and does not affect 7526 terminals.

          When the problem occurs you'll get a terminal that does not
          respond to most commands but it will respond to the Are-you-there
          messages.

7-23-98:  SV: Fixed problem submitting validation files when any DOS/Windows
          terminals are in the configuration.  The code which determines
          which terminals should be downloaded encounters an error
          trying to read the job file for a DOS/Windows terminal because
          the job files for those have limited information in them.

          The server will produce messages DCR0035, DCR0203 and DCR0161
          when the problem occurs.  The first two indicate an error occurred
          reading the job file and the last indicates downloads could not
          be started for the submitted validation file.

7-29-98:  HP: Added to Tech Ref instructions for getting info about DCRxxxx
          messages on Windows/NT (CS2HELP DCRxxxx).  Also added to the User's
          Guide a section called 'Messages, Errors and Return Codes' that
          refers to the related sections in the Tech Ref.  Unfortunately we
          don't currently have a way to have a link from one book to another.

8-07-98:  TC: Added 2 new optional command line parameters and corresponding
          script commands that provide a database user-id and password to
          be passed on the database connection.  This is analogous to the
          command line SQL statement: CONNECT TO database USER user_id
          USING password.

          The format of the new TC command line parameters is:

          /DBUSERID=user_id    - Where user_id is a valid user id on the
                                 system that is the target of the database
                                 connection.  user_id may be 1-8 characters
                                 in length.
          /DBPASSWORD=password - Where password is valid for user_id on the
                                 system that is the target of the database
                                 connection.  password may be 1-18 characters
                                 in length.

          The format of the corresponding new TC script commands is:

          DBUSERID ( user_id )
          DBPASSWORD ( password )

8-07-98:  TC: Changed the user id that will be used when the database bind
          creates a package in the target database to USERID.  This is only a
          concern for DDCS DRDA connections to an AS/400 resident database,
          because the AS/400 Collection must be created with this same name
          of USERID.

8-07-98:  TC: Various new functions added to Transaction Connection, mostly to
          allow you to code better bullet-proofing against PCOMM emulator errors.

          * Run_Without_Session flag anywhere in script will allow TC to fully start-up
          without successfully connecting HLLAPI to the session.  TC will spend about 10
          seconds attempting to do the HLLAPI connect before giving up and continuing with
          the start-up.  TC will not automatically attempt to connect any further -- you
          must includes SESSION_CONNECT() calls in your script to attempt to get HLLAPI
          connected.

          * WS_Profile command allows you to specify the Personal Communications (PCOM)
          workstation profile to use for the emulator sessions.  TC will start its assigned
          session automatically if it finds the session is not already running.

          * Session_Connect performs the HllConnect attempt in the same manner
          as is done at TC start-up time.  It will start the PCOMM emulator session
          if it does not find it running (if you provide a profile name as a parameter
          or in a WS_Profile command)

          * Communication_Disconnect will perform a pcsDisconnectSession of the
          session from the host.  This is the same as clicking on the PCOMM
          'Communication/Disconnect' menu items.

          * Communication_Connect will perform a pcsConnectSession of the
          session from the host.  This is the same as clicking on the PCOMM
          'Communication/Connect' menu items.

          * On_Error_Goto( SESSION, name ) is now supported to allow vector to
          your code label/subroutine if an EHLLAPI error OTHER than locked/busy
          is encounted.

          * Name_UV now support use of the keyword 'NEXT_UV' instead of a 'UVn'
          name for the user variable number to be named.  For example:

             //* Start named variables at UV30 and higher
             Name_UV( UV30, uvWorkOrder )
             Name_UV( NEXT_UV, uvSalesOrder )       //* This would be UV31
             Name_UV( NEXT_UV, uvUserID )           //* and this is UV32...

          * Log_Data now supports use of a user variable to hold the output file
          name, as well as a new optional return code user variable which allows
          you to determine if the write worked and (more importantly) prevents
          TC from shutting down if there is contention for the file with another
          application.

          * New data part SESSION_STATUS can be used to determine if HLLAPI is
          currently connected. Values are "1" if connected, "0" if not. Usage
          examples:


            If( SESSION_STATUS, 0, 0, ==, "0" )
            {
             //* We are not connected...
             Session_Connect()

            }

           and

            Set_UV_Xact_Data( UV1, SESSION_STATUS, 0, 0 )

          Note:  Start and length values are ignored in this usage

          Once connected, only Cycle_Session(DOWN) can cause SESSION_STATUS
          to change from 1 back to 0. A Cycle_Session or Session_Connect command
          can cause the HLLAPI connection to be made and the status to change
          from 0 to 1.

          * New data part XACT_AGE allows use of the age in seconds of the incoming txn:
              Set_UV_Xact_Data( uvAge, XACT_AGE, 0, 0 )

          * DB_NULL_EMPTY / DB_NULL_SPACE / DB_NULL_TEXT allows you to set how you
          want database NULL values to appear in user variables.  EMPTY means the
          user variable will be equal to ""; SPACE means it will come back as " "
          (the way TC has always worked to date); TEXT means it comes back as literally
          "".

          *  In command-built SQL, such as SETUP_INSERT_FIELD etc., empty user variables
          are converted to '' (empty string) for CHARACTER column types (this is no change
          from prior behaviour) while NUMERIC, TIME, DATE, and TIMESTAMP column types
          are converted into the text NULL.  Previously, these later types of columns
          would have converted to an empty string which would have yielded an an SQL
          error as it tried to interpret SQL like '... QUANTITY =, TIME_STAMP=,...' .
          Free-form SQL (Begin_SQL/End_SQL) works the same way now also.

8-10-98:  UI: Fixed problem saving/restoring configuration when more than one
          ARTIC adapter is configured.


8-19-98:  UI: Fixed DCConnect User Interface trap during start up when
          multiple job files are encountered with the same job name.

8-24-98:  TC: Several changes/fixes were made to the Log_Error script command.

          All error logging now goes through a common routine, so there will
          never be a case where different threads can have contention for the
          error log.  This should eliminate a problem of TC shutting down with
          unexpected XIS049:Error opening error log file.

          If the error log file legitimately cannot be opened, the error will
          be displayed on the screen, along with the error XIS049:Error
          opening error log file.  TC will no longer shut down on this error,
          but will continue processing.

          TC will now perform 20 (increased from 10) retries to open the error
          log file before displaying a non-fatal XIS049 warning, and
          continuing on.

          A potential trap resulting from a Log_Error ( UVn ) where the user
          variable contained over 200 bytes is fixed.

9-01-98   TC: Added LAST_ERROR data part to provide the EHLLAPI error code for
          the last EHLLAPI error encountered.  Added more TC2ERRx.LOG tracing
          data regarding connection to host screens.  Fixed bug in
          SESSION_CONNECT which prevented it from properly executing the
          On_Error_Goto label upon encountering an error.  Made Session_Connect
          do a single Communication disconnect/connect cycle if it initially
          has trouble getting a HLLAPI connection to the presentation space.

9-23-98:  SV: On fast system units after configuration changes to ARTIC
          based terminals (e.g. line speed, add additional lines,...)
          terminals may fail to respond at next Server start up.

          A error DCR0113 ( Error configuring line ...) may be logged
          in the message file at start up.

10-1-98:  SV: Major changes to server to increase performance for RF and
          TCP/IP networks.  In the past, DCConnect would send commands to
          terminals one at a time; it waited for the response or timeout
          for one command before it would send the next.  With these changes,
          each terminal may have one command in progress.  As a result,
          communication problems with one terminal will no longer have
          an impact on communications with terminals that are working.  In
          addition, performance on the whole will be greatly improved because
          the time between a command and its response will be overlapped
          for all terminals.

          Note that although the server no longer single threads communications
          on the RF and TCP/IP networks, if all terminals are communicating
          to a single application for handling transactions, the terminals
          will still be single threaded - but by the application.  In order
          to alleviate that bottleneck, the design of the system should be
          set up such that multiple applications are handling transactions
          for different terminals.

10-15-98: SV: (NT only) Fixed problem where handles were not being freed
          for the API DcxOpenMsgLog - in the case the open did not succeed.
          Also fixed bug with DcxCloseValidation which likewise was not
          freeing up handles - this time for a close in which no errors
          occurred.

10-20-98: UI: Fixed problem in GUI reading in the RF_COMM_LINE parameter
          from the EXTRA.CFG file.  If there were any spaces between the
          equal sign and the text 'COM', the RF line number would incorrectly
          show up as line 0 - and no RF terminals would be assigned to it.
          The GUI can now handle any number of spaces.

10-21-98: SV: Fixed problem with data request APIs (DcxReadDataRequest and
          DcxRequestData) that occurred when 0 was passed for the length.
          The subsequent call to receive the data did not always return it
          properly.  Now it does.

10-21-98: TC: Fixed trap in TC that occurred if a Format_UV command with
          the STRIP_TRAILING_CHARS option was executed on a User Variable
          of length 0.

10-21-98: TC: Fixed trap in TC that occurred if we got a Transaction ID of 0.
          This should never be possible, but due to a bug in DCConnect that
          allows multiple TC sessions to connect to the same Mailbox, this
          case did occur.

10-22-98: UI: Fixed the size of the popup that is shown when you shutdown the
          server and a terminal is downloading.

10-22-98: UI: Fixed problem in application notebook when the application type
          is TC and remote validation is selected.  A space was missing
          between two of the parameters in the command line that was
          generated.

10-22-98: SV: Fixed problem on NT where two openings against the same
          mailbox causes the first mailbox to become unowned during the
          process of rejecting the second open attempt.  As a result a third
          open attempt would succeed.  Continuing in this manner, every other
          open attempt would succeed.  Now only the first succeeds.

10-29-98: TC: Added 7 special characters to Set/Append_UV_Kbd_Data:
          STX, ETX, ESC, CAN, ETB, RS and SUB.

10-29-98: TL: In the DCXGETTX.EXE sample/utility, added optional second
          parameter for number of milliseconds between successful reads.
          Also, the Cntrl-Break signal is now captured and handled just like
          Cntrl-C, allowing the mailbox to be closed properly before the
          program ends.

10-30-98: SV: Fixed rare, old problem that could occur on ARTIC and serial
          lines with 7527 terminals that were cold-started.  A tiny window
          existed during the start flush command that could cause commands
          to go to wrong terminal if another command were received in that
          window.

10-30-98: SV: Messages shown in the server session now include the date/time
          stamp at the beginning.

11-01-98: TL: Added an optional second parameter to TESTTERM.EXE: NOPAUSE.
          If NOPAUSE is included as the second parameter, the program will
          not delay or wait for a key press after any API call - even those
          that generate an error.  This is useful when calling TESTTERM
          repeatedly from a batch file.

11-03-98: SV: Increased the time any task will wait to send a message in the
          situation where the message pool is completely full.

11-04-98: TL: The Backup and Restore utility was failing to check the Operating
          System type when restoring files from a hard file backup.  As a
          result, CS2 files from one operating system were restored to the
          other.  When that happens, CS2 will fail to run - subsequently
          DCConnect won't run either.  To fix this situation, CS2 has to be
          removed and reinstalled.

          The fix to the backup/restore utility prevents this problem from
          occurring.

----------------------------------------------------------------------------
End of fixes in version C of -03 fix package (November 1998).
----------------------------------------------------------------------------

11-09-98: UI: Fixed the GUI so that it no longer considers a single quote
          character illegal for filenames.  If a validation file name from
          a migrated configuration had a single quote in it's name,
          DCConnect would fail to read in most of the configuration.  That's
          been fixed.

11-10-98: UI: Fixed naming problem with the default function groups that are
          created from a migrated configuration (from DCC/2 32-bit runtime).
          Before you'd get names like 'Function_Group_xx'.  Now the function
          group name matches the job name from the 32-bit DCC/2 configuration.

11-10-98: UI: Fixed problem reading in mailbox/routing group (export/export
          group) definitions when more than one export/routing group is listed
          following the EXPORT_GROUPS keyword of an [EXPORT] definition in
          the DCX2.INI file.

11-11-98: SV: Minor change to improve responsiveness of terminals that are
          being slow-polled when only a couple of terminals are responding.

11-24-98: SV: Fixed the cause of a trap in DCX.DLL that might occur when
          a certain DAE error occurred.  The Dr. Watson trap address would
          show as 0x00251be7.  Also fixed some problems that might possibly
          be the cause of the DAE error.

11-25-98: SV: Another fix to DCX.DLL in the area where we initialize DAE
          resources.  This change closed a timing window which might cause
          a trap at the address 0x10034156 or it might cause a -1 return
          code (DCX_INTERNAL_ERROR) on API calls when multiple threads
          are making API calls simultaneously in the same process.  We
          believe this problem only existed on Windows/NT and has been
          around since the first release of DCConnect.

11-25-98: TC: Added about 20 lines of diagnostic data that gets written to
          the TC error log file and error log window on the TC screen
          when TC starts up.  This will not be meaningful to end users,
          nor does it have any affect on TC.  This diagnostic information
          will make it much more efficient for us here in the lab to
          conduct problem determination.

11-25-98: TC: Fixed a local variable corruption that would cause some
          strange return codes when reading user variables from
          a terminal, or writing user variables to a terminal in SYNCH
          mode, and only if the DCConnect call had to be retried due
          to an error return from DCConnect.

11-25-98: TC: Added DOUBLE_QUOTE as a control character that can
          be used in a Send_To_Host or Append/Set_UV_Kbd_Data.

11-30-98: SV: Fix for the API DcxQueryJobTerms: the list count value
          returned was the total number of terminals rather than the
          number of terminals using the specified job.

12-01-98: TC: Fixed a trap in the startup of TC.  The 2 second timer thread
          that closes the "About TC" pop-up window was being started
          before the window was created.  If the 2 seconds expired on
          a slow/busy system, before the window was created, the 2
          second timer thread would attempt to destroy a non-existant
          window and cause the trap.

12-03-98: TC: Fixed 2 problems with the SendToHost Command relating
          to embedded control codes.  If a data part or literal contains
          an @, you will still get a warning, but warnings will no longer
          be issued for pre-defined control codes, which are expected
          to contain @s.  Also, the scan was skipping the first
          character, which could have caused a literal or data part
          beginning with an @ to be copied to the host screen as data.

12-04-98: TC: Fixed a trap in TC that would occur if a script executed a
          Set/Append_UV_Select_Data with no error label, and the
          prior FETCH Command was not done or encountered an error.
          TC will now continue processing with the next line of
          the script, without clearing or appending to the intended target
          user variable.  An informational error will be logged to indicate
          that the error occurred, and will contain the following message:
          XIS102:No valid SELECT data is available for Append_UV_Select_Data

12-04-98: SV: Fix for the API DcxWriteTransaction.  If this call is made
          when the logfile is full, the return code used to be DCX_FILE_ERROR.
          With fix pack C this was changed to DCX_NO_MORE_ROOM.  However, we
          changed it back to DCX_FILE_ERROR since that is what is
          documented for this situation and since Transaction Connection
          specifically looks for DCX_FILE_ERROR.

1-14-99:  SV: Fix for the API DcxReleaseTransaction.  In the situation where
          multiple transactions have been read and some but not all of them
          are being released, you can get a file read error if the transactions
          to be released wrap from the end to the beginning of the file and
          the last one to be released is one of the ones at the beginning of
          the file.

1-15-99:  TC: New trace facility has been added on NT systems only. Tracing is
          now handled by a stand alone program( TCTRACE.EXE ). Trace data is
          sent to the program by TC2 and it handles opening, logging and
          closing of the trace log files.  There can be up to ten one megabyte
          size log files built for each TC2 session running. When all ten files
          are full the oldest file is always used as the current log file. The
          log files are named in the following manner: TC2TRCxy.LOG (x = log
          file number 0 to 9, y = TC2 session Controller ID).

1-21-99:  SV: Added back the 4-13-98 fix for the ARTIC and serial driver
          that helped communications get back in synch after commands timed
          out.  This fix was inadvertently lost during the reorganization of
          the server code.

2-4-99:   SV: For the TCP/IP and RF terminal drivers a problem was fixed that
          could potentially cause commands to get out of synch with their
          responses.  The timing window for this to actually occur is very
          small and probably would never be seen in most customer situations.
          If the problem were to occur you would get message DCR323, a SEVERE
          error which indicates there was no message queued for a particular
          command.  You might have also received a trap in one of the terminal
          driver modules: td*.exe, gw*.exe or po*.exe

2-12-99:  SV: Added the NOAUTOLOAD command line parameter for DCXCPOS2.EXE that
          was added to the DCC/2 32-bit runtime product a while back.

          This tells the server not to automatically download terminals that
          request a download.  Instead the terminal is put into the Stopped -
          which requires the user to issue the download manually.  The following
          message is also logged:

            DCR0138E: Terminal xxxx is being stopped because it failed
                      NOAUTOLOAD consecutive downloads/flushes/time synchs.

          (We reused an existing message which is not 100% appropriate).

          This change was made at the request of a customer using 7524s who
          didn't want the download to disrupt performance when a terminal lost
          its settings.

          To use this feature, simply add the keyword NOAUTOLOAD as a command
          line parameter wherever DCXCPOS2.EXE is invoked.  Don't use a slash
          or any other delimiter.

2-15-99:  UI: DCConnect will now preserve the setting of the 'Hourly
          Transaction?' parameter (byte 6) of record 0 when reading in and
          writing out job files.  This option is not accessible from DCConnect
          screens.  However, if a customer changes the value in the job
          file themselves, it will no longer be changed back to the default
          value whenever a DCConnect save operation is performed.

2-19-99:  TC:  Added Check_II (input inhibited) and Check_Busy commands,
          allowing more flexibility than that provided by Wait_Until_Unlocked.
          Fixed bug in Check... functions which incorrectly showed the
          true/false results on the function in the trace file output.
          Fixed problem with Check_MW which would cause it to hang if the
          timeout was > 0.  Added NOT_FOUND_IMMED logic style to the
          various Check... functions so that they returned as soon as
          the desired text or condition was NOT found (the original
          NOT_FOUND logic blocks execution for the entire timeout period
          while waiting to see if the text/condition may appear during
          the timeout, even if it was not present when first checked).

----------------------------------------------------------------------------
End of fixes in version D of -03 fix package (March 1999).
----------------------------------------------------------------------------